#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <vector>
using namespace std;

/*
从一个仅含有整数元素的数组中找到最长的“和谐”子数组（即最大值和最小值差不超过1的情况，不允许修改元素之间的相对顺序）
*/
int findLongestHarmonySubsequency(vector<int>& nums)
{
    int res = 0;
    unordered_map<int,int> hashmap;
    for(auto& x: nums)
    {
        hashmap[x] ++;
    }
    for(auto& x: hashmap)
    {
        if(hashmap.count(x.first-1))
            res = max(res, x.first + hashmap[x.first - 1]);
    }
    return res;
}